// 泛型的特点
// 泛型的宽泛：定义时不明确使用时必须明确成某种具体数据类型的数据类型
// 泛型的严谨：编译期间进行数据类型检查的数据类型

// class 类名<泛型形参类型>
// 泛型形参类型一般有两种表示：
//      1.A-Z 任何一个字母
//      2.语义化的单词来表示，绝大多数情况，泛型都是采用第一种形式表示
// class ArrayList<T>{
//     array:Array<T>
//     add(data:T){
//
//     }
// }

// interface Ref{
//     value:any
// }
//
// let ref:Ref={
//     value:23
// }
// let ref2:Ref={
//     value:{username:"zhangsan",age:23}
// }
//
// ref2.value

interface Ref<V>{
    value:V
}

let ref:Ref<string>={
    value: "abc"
}

type Student={name:string,age:number}
let ref2:Ref<Student>={
    value:{name:"zhangsan",age:12}
}



export {}
